home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU10.ARC / MSD - PART 06 < prev    next >
Encoding:
Text File  |  2019-04-13  |  5.1 KB  |  75 lines

  1. ║CM:MSD - PART 06
  2. ║LM21:RM70:PP66:PG60
  3. ║P#11
  4. ║FT1:,,╨AGE <>
  5. ║AI-16
  6. $├39╞  ╞╞15     ╩╙╥ ╙╫╔╘├╚ [$├3──] TO CHANGE DRIVES AND CONTINUE EXECUTION WITH ╞╞╙╘ FOR THE OTHER DRIVE.
  7.  
  8.  
  9.  
  10.        ╞╞╙╘     ╞IND 1'ST DIRECTORY ENTRY WHICH MATCHES FILE NAME
  11.  
  12. $├3┴2           ├LEAR ─┼╠╔╬─ [$┴╞] TO INDICATE WE ARE ╬╧╘ LOOKING FOR A DELETED OR UNUSED DIRECTORY ENTRY.
  13. $├3┴6           ╩╙╥ ╙╥├╚╙╘ [$├4┬┼] TO START THE SEARCH.
  14. $├3┴9           ╔F A VALID NAME WAS FOUND THEN BRANCH TO ╞╞25.
  15. $├3┴┬           ╙ET ╞╧╒╬─ [$4├┼0] TO ZERO TO INDICATE ALL FILES HAVE NOT YET BEEN FOUND.
  16. $├3┴┼  ╞╞10     ╔F ╞╧╒╬─ [$4├┼0] IS NOT ZERO (ALL FILES FOUND) THEN BRANCH TO ╞╞40 TO EXIT.
  17. $├3┬3           ─ECREMENT ─╥╓├╬╘ [$4├──] AND IF NON-NEGATIVE THERE IS ANOTHER DRIVE TO SEARCH SO BRANCH TO ╞╞15.
  18. $├3┬8           ╬O ENTRY WAS FOUND SO EXIT WITH A RETURN.
  19.  
  20.  
  21.  
  22.        ╞╬─╞╔╠   ├ONTINUE SCAN OF DIRECTORY
  23.  
  24. $├3┬9           ╩╙╥ ╙┼┴╥├╚ [$├529] TO GET NEXT VALID FILE NAME.
  25. $├3┬├           ╔F THERE ARE NO MORE DIRECTORY ENTRIES THEN BRANCH TO ╞╞10 TO SEE IF THERE IS ANOTHER DRIVE.
  26. $├3┬┼  ╞╞25     ╩╙╥ ├╧═╨┴╥ [$├3┼┴] TO SEE IF THE CURRENT ENTRY MATCHES A FILE NAME.
  27. $├3├1           ╔F ┼╬╘╞╬─ [$4├┬5] < 128 (ENTRY MATCHES FILE NAME) THEN BRANCH TO ╞╞30 TO CHECK THE FILE TYPE.
  28. $├3├6           ╔F ╞╧╒╬─ [$4├┼0] = 0 (ALL FILES ╬╧╘ FOUND) THEN BRANCH TO ╞╬─╞╔╠ TO GET THE NEXT DIRECTORY ENTRY.  ╧THERWISE, ALL FILES HAVE BEEN FOUND SO EXIT WITH A BRANCH TO ╞╞40.
  29. $├3├─  ╞╞30     ╔F ╘┘╨╞╠╟ [$4├┼6] = 0 (ANY FILE TYPE IS VALID) THEN EXIT WITH A BRANCH TO ╞╞40.
  30. $├3─2           ╔F ╨┴╘╘┘╨,╪ [$4├71,╪] (DIRECTORY ENTRY FILE TYPE) DOES NOT MATCH ╘┘╨╞╠╟ [4├┼6] (FILE TYPE FROM COMMAND) THEN BRANCH TO ╞╬─╞╔╠ TO CONTINUE THE SEARCH.
  31. $├3─├  ╞╞40     ╞ILE FOUND - EXIT WITH A RETURN.
  32.  
  33.  
  34.  
  35.        ╙╫╔╘├╚   ╙WITCH FROM ONE DRIVE TO THE OTHER
  36.  
  37. $├3──           ╙ET ─╥╓╞╠╟ [$4├─┼] TO $01 TO INDICATE BOTH DRIVES ARE TO BE SEARCHED.
  38. $├3┼2           ╩╙╥ ╘╧╟─╥╓ [$├2┴9] TO TOGGLE THE DRIVE NUMBER.
  39. $├3┼5           ╩╙╥ ╙┼╘╠┼─ [$├003] TO TURN ON THE ╠┼─.
  40. $├3┼8           ├LEAR .├ TO INDICATE SWITCH HAS BEEN DONE.
  41. $├3┼9           ╥ETURN.
  42.  
  43.  
  44.  
  45.        ├╧═╨┴╥   ├OMPARE FILE NAMES IN COMMAND WITH CURRENT ENTRY
  46.  
  47. $├3┼┴           ╙ET ┼╬╘╞╬─ [$4├┬5] TO $╞╞ TO INDICATE NO MATCH.
  48. $├3┼╞           ├LEAR ╨┴╘╞╠╟ [$┬8].
  49. ║FP
  50. $├3╞2           ╩╙╥ ├═╨├╚╦ [$├49┼] TO SEE IF ANY FILE NAMES ARE STILL OUTSTANDING.
  51. $├3╞5           ╔F AT LEAST ONE FILE NAME IS STILL UNFOUND THEN BRANCH TO ├╨10.
  52. $├3╞7  ├╨02     ┴LL FILES HAVE BEEN FOUND SO EXIT WITH A RETURN.
  53. $├3╞8  ├╨05     ╩╙╥ ├├10 [$├4┴7] TO SET ╞2╨╘╥ [$┬4] TO THE INDEX OF THE NEXT FILE TO BE LOCATED.
  54. $├3╞┬           ╔F THERE ARE NO FILES LEFT THEN BRANCH TO ├╨02.
  55. $├3╞─  ├╨10     ╟ET ─╥╓╬╒═ [$54] AND ┼╧╥ WITH ╞╔╠─╥╓,╪ [$4├6├,╪].  ╔F THE DRIVE #'S ARE DIFFERENT, BIT 0 WILL BE SET AND IF THE DRIVE CAN BE DEFAULTED, BIT 7 WILL BE SET.
  56. $├402           ╙HIFT .┴ RIGHT TO PUT BIT 0 INTO .├ AND IF IT IS ZERO (DRIVES MATCH) THEN BRANCH TO ├╨20.
  57. $├405           ─RIVE #'S ARE DIFFERENT.  ├HECK .┴ TO SEE IF THE DEFAULT BIT IS CLEAR (DRIVE ├┴╬╬╧╘ BE DEFAULTED) AND IF THIS IS THE CASE THEN BRANCH TO ├╨05.
  58. $├409           ╔F ─╥╓├╬╘ [$4├──] = $02, DON'T LET THE DRIVES BE DIFFERENT SO BRANCH TO ├╨05 TO GET ANOTHER FILE.
  59. $├410  ├╨20     ╘HE DRIVE #'S MATCH.  ╬OW SEE IF THE NAME CAN BE MATCHED.  ╠OAD .┴ FROM ╞╔╠╘┬╠,╪ [$4┼30,╪] (THE OFFSET OF THE START OF THE FILE NAME) AND COPY TO .╪.
  60. $├414           ╩╙╥ ╞╬─╠═╘ [$├5┬├] TO FIND END OF THE FILE NAME.
  61. $├417           ╙ET .┘ TO $03 (THE OFFSET OF THE START OF FILE NAME IN A DIRECTORY ENTRY) AND JUMP TO ├╨33.
  62. $├41├  ├╨30     ╔F ├═─┬╒╞,╪ [$4┼00,╪] (FILE NAME CHARACTER FROM COMMAND) = (─╔╥┬╒╞),┘ [($69),┘] (DIRECTORY ENTRY NAME CHARACTER) THEN BRANCH TO ├╨32 TO ADVANCE THE STRING POINTERS.
  63. $├423           ╔F COMMAND STRING CHARACTER IS NOT $3╞ (?) THEN BRANCH TO ├╨05 TO CHECK ANOTHER FILE NAME.
  64. $├427           ╔F DIRECTORY ENTRY CHARACTER IS $┴0 (END OF FILE NAME) THEN BRANCH TO ├╨05 TO TRY ANOTHER FILE NAME.
  65. $├42─  ├╨32     ╔NCREMENT .╪ AND .┘ TO POINT TO NEXT CHARACTER.
  66. $├42╞  ├╨33     ╔F .╪ >= ╠╔═╔╘ [$4┼2╞] THEN WE HAVE REACHED THE END OF THE COMMAND STRING SO BRANCH TO ├╨34.
  67. $├434           ╔F NEXT CHARACTER FROM COMMAND STRING IS $2┴ (*) THEN BRANCH TO ├╨40 TO TABULATE A MATCH.  ╧THERWISE, BRANCH TO ├╨30 TO CHECK THE CURRENT CHARACTERS.
  68. $├43─  ├╨34     ╔F .┘ >= $13 WE ARE AT THE END OF THE DIRECTORY ENTRY SO BRANCH TO ├╨40 TO TABULATE A MATCH.
  69. $├441           ╔F THE NEXT CHARACTER IN THE DIRECTORY ENTRY IS $┴0 THEN WE ARE AT THE END OF THE DIRECTORY ENTRY AND HAVE MATCHED THE FILE NAME FROM THE COMMAND.
  70. $├447  ├╨40     ├OPY ╞2╨╘╥ [$┬4] TO ┼╬╘╞╬─ [4├┬╞] TO INDICATE THE FILE NAME IS FOUND AND RECORD ITS INDEX.
  71. $├44├           ╧BTAIN ╨┴╘╘┘╨,╪ [$4├71,╪] FOR THE FILE, ┴╬─ IT WITH $80 (TO SEE IF IT CONTAINED WILD CARDS), AND SAVE THE RESULT IN ╨┴╘╞╠╟ [$┬8].
  72. $├453           ├OPY ╔╬─┼╪ [$4├┼4] (THE DIRECTORY ENTRY POINTER) TO ┼╬╘╞╬─,╪ [$4├67,╪] (THE DIRECTORY ENTRY POINTER FOR THE FILE.
  73. $├459           ├OPY ╙┼├╘╧╥ [$56] FOR THE DIRECTORY BLOCK INTO ┼╬╘╙┼├,╪ [$4├62,╪] (DIRECTORY SECTOR BLOCK NUMBER INDEXED BY THE FILE NUMBER).
  74. $├45┼           ├LEAR .┘ (OFFSET OF FILE TYPE IN DIRECTORY ENTRY) AND GET THE FILE TYPE FROM (─╔╥┬╒╞),┘ [($69),┘].
  75.